Resource File ব্যবহার করে Multi-language Support

Microsoft Technologies - এমভিভিএম (MVVM) Localization এবং Globalization Techniques in MVVM |
209
209

Multi-language support এর মাধ্যমে একটি অ্যাপ্লিকেশন একাধিক ভাষায় কাজ করতে সক্ষম হয়, যা আন্তর্জাতিক ব্যবহারকারীদের জন্য সুবিধাজনক। Resource File ব্যবহার করে সহজেই অ্যাপ্লিকেশনে বিভিন্ন ভাষার জন্য localization (স্থানীয়করণ) এবং globalization (বিশ্বীকরণ) বাস্তবায়ন করা যায়।

MVVM (Model-View-ViewModel) আর্কিটেকচারে, আপনি Resource Files ব্যবহার করে ViewModel এবং View-এ বিভিন্ন ভাষার সাপোর্ট যুক্ত করতে পারেন। এই প্রক্রিয়া অ্যাপ্লিকেশনটি একাধিক ভাষায় প্রদর্শিত করার সুযোগ দেয় এবং ব্যবহারকারীর প্রয়োজন অনুযায়ী ভাষা পরিবর্তন করা যায়।


Resource File কী?

Resource File (.resx) হল একটি একক ফাইল যেখানে আপনি অ্যাপ্লিকেশনের সমস্ত ভাষাগত বা স্ট্রিং ডেটা সংরক্ষণ করতে পারেন। প্রতিটি রিসোর্স ফাইলে একটি নির্দিষ্ট ভাষার জন্য কীগুলোর মান থাকবে। উদাহরণস্বরূপ, "Welcome" বা "Submit" এর মতো টেক্সটগুলি।

.resx ফাইলটি XML ফরম্যাটে থাকে এবং এতে ভাষাগত কীগুলোর মান এবং তাদের অনুবাদ সংরক্ষিত থাকে।


Multi-language Support Implementing with Resource Files

ASP.NET Core বা WPF অ্যাপ্লিকেশনগুলিতে Resource Files ব্যবহার করে মাল্টি-ল্যাঙ্গুয়েজ সাপোর্ট করা যেতে পারে। এখানে WPF অ্যাপ্লিকেশনকে উদাহরণ হিসেবে নেওয়া হয়েছে।

Step 1: Resource Files তৈরি করা

প্রথমত, বিভিন্ন ভাষার জন্য .resx ফাইল তৈরি করতে হবে।

  1. Strings.resx (Default language: English)
    • Key: WelcomeText
    • Value: Welcome to our application!
  2. Strings.bn-BD.resx (Bengali Language)
    • Key: WelcomeText
    • Value: অ্যাপ্লিকেশনে স্বাগতম!
  3. Strings.fr-FR.resx (French Language)
    • Key: WelcomeText
    • Value: Bienvenue dans notre application!

Step 2: Resource Files এ ভাষাগত ডেটা সংরক্ষণ

Strings.resx (English):

<data name="WelcomeText" xml:space="preserve">
  <value>Welcome to our application!</value>
</data>

Strings.bn-BD.resx (Bengali):

<data name="WelcomeText" xml:space="preserve">
  <value>অ্যাপ্লিকেশনে স্বাগতম!</value>
</data>

Strings.fr-FR.resx (French):

<data name="WelcomeText" xml:space="preserve">
  <value>Bienvenue dans notre application!</value>
</data>

Step 3: Resource Files ব্যবহার করা

এখন আপনি ViewModel বা View-এ এই রিসোর্স ফাইল থেকে ডেটা অ্যাক্সেস করতে পারেন।

ViewModel Example:

using System.Resources;
using System.Globalization;

public class MainViewModel : INotifyPropertyChanged
{
    private string _welcomeText;

    public string WelcomeText
    {
        get => _welcomeText;
        set
        {
            _welcomeText = value;
            OnPropertyChanged(nameof(WelcomeText));
        }
    }

    public MainViewModel()
    {
        // Default Culture (English)
        SetLanguage("en-US");
    }

    public void SetLanguage(string cultureCode)
    {
        var culture = new CultureInfo(cultureCode);
        Thread.CurrentThread.CurrentCulture = culture;
        Thread.CurrentThread.CurrentUICulture = culture;

        // Get the resource manager
        var resourceManager = new ResourceManager("YourAppNamespace.Resources.Strings", typeof(MainViewModel).Assembly);
        
        // Set the WelcomeText based on the current culture
        WelcomeText = resourceManager.GetString("WelcomeText");
    }
}

এখানে:

  • SetLanguage মেথডটি CultureInfo ব্যবহার করে ভাষা সেট করে।
  • ResourceManager দিয়ে রিসোর্স ফাইল থেকে সঠিক ভাষার মান রিট্রাইভ করা হয়।

Step 4: ভাষা পরিবর্তন করা

ব্যবহারকারীর কাছে ভাষা পরিবর্তন করার সুযোগ দিতে আপনি একটি বাটন বা ড্রপডাউন মেনু ব্যবহার করতে পারেন। প্রতিবার যখন ভাষা পরিবর্তন হবে, তখন SetLanguage মেথডটি কল করা হবে এবং UI আপডেট হবে।

View (XAML) Example:

<Window x:Class="YourApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Main Window" Height="350" Width="525">

    <Grid>
        <TextBlock Text="{Binding WelcomeText}" FontSize="24" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        <Button Content="Change Language" HorizontalAlignment="Right" VerticalAlignment="Top" Width="100" Height="30" Margin="10" Command="{Binding ChangeLanguageCommand}"/>
    </Grid>
</Window>

ViewModel এ কমান্ড সেট করা:

public class MainViewModel : INotifyPropertyChanged
{
    public ICommand ChangeLanguageCommand { get; private set; }

    public MainViewModel()
    {
        ChangeLanguageCommand = new RelayCommand(ChangeLanguage);
        SetLanguage("en-US");
    }

    private void ChangeLanguage()
    {
        if (Thread.CurrentThread.CurrentUICulture.Name == "en-US")
            SetLanguage("bn-BD");
        else
            SetLanguage("en-US");
    }

    public void SetLanguage(string cultureCode)
    {
        // Similar to previous code
    }
}

এখানে:

  • ChangeLanguageCommand ব্যবহারকারীর ভাষা পরিবর্তন করার জন্য একটি কমান্ড তৈরি করছে।
  • SetLanguage মেথড ভাষা পরিবর্তন করে এবং UI টেক্সট আপডেট হয়।

Conclusion

Resource File ব্যবহার করে MVVM আর্কিটেকচারে multi-language support বাস্তবায়ন করা অনেক সহজ এবং সুবিধাজনক। এতে অ্যাপ্লিকেশনটি একাধিক ভাষায় সহজে কাজ করতে পারে, এবং ব্যবহারকারীদের স্থানীয় ভাষায় উপস্থাপন করা হয়। আপনি বিভিন্ন ভাষার জন্য আলাদা আলাদা .resx ফাইল তৈরি করতে পারেন এবং সেগুলির মধ্যে স্থানীয়কৃত টেক্সট ব্যবহার করতে পারেন। CultureInfo এবং ResourceManager এর মাধ্যমে ভাষা পরিবর্তন এবং ডাইনামিক টেক্সট আপডেট করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion